package datasource;

import com.spire.pdf.*;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.graphics.*;
import java.awt.geom.Rectangle2D;
import java.awt.*;

public class RemoveTextFromPDF {
    public static void main(String[] args) {
        try {
            // 加载 PDF 文档
            PdfDocument pdf = new PdfDocument();
            pdf.appendPage();
            pdf.loadFromFile("C:\\Users\\cm199\\Desktop\\test\\test.pdf");
            pdf.appendPage();

            // 指定要移除的文本
            String textToRemove = "valuation Warning : The document was created with Spire.PDF for Java.    ";

            // 遍历每一页
            for (int i = 0; i < pdf.getPages().getCount(); i++) {
                PdfPageBase page = pdf.getPages().get(i);
                // 查找指定文本
                PdfTextFind[] result = page.findText(textToRemove).getFinds();
                for (PdfTextFind find : result) {
                    try {
                        // 获取文本所在的矩形区域
                        Rectangle2D.Float rect = (Rectangle2D.Float) find.getBounds();
                        PdfRGBColor whiteColor = new PdfRGBColor(java.awt.Color.WHITE);
                        // 创建白色画笔，用白色矩形覆盖文本
                        PdfSolidBrush brush = new PdfSolidBrush(whiteColor,true);
                        page.getCanvas().drawRectangle(brush, rect);
                    } catch (Exception e) {
                        System.err.println("处理文本覆盖时出错: " + e.getMessage());
                        e.printStackTrace();
                    }
                }
            }

            // 保存修改后的 PDF 文档
            pdf.saveToFile("output.pdf");
            pdf.close();
        } catch (Exception e) {
            System.err.println("处理 PDF 时出错: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
